#ifndef __VGS_IMPL_H__
#define __VGS_IMPL_H__

#include "includes.h"

#ifdef __cplusplus
extern "C" {
#endif

//VGS -> GAL_ENGINE -> RGA/OpenCL...

#define VGS_JOB_MAX_NUM 256
#define VGS_TASK_MAX_NUM 128

typedef enum trVGA_TASK_TYPE_E {
    VGS_TASK_TYPE_NONE = 0,
    VGS_TASK_TYPE_COPY,
    VGS_TASK_TYPE_SCALE,
    VGS_TASK_TYPE_OSD,

    VGS_TASK_TYPE_BUTT
} VGA_TASK_TYPE_E;

typedef struct trVGS_TASK_S {
    BOOL bEnable;
    VGS_TASK_ATTR_S attr;
    int32_t type;
    BOOL bCommited;
    //...
} VGS_TASK_S;

typedef struct trVGS_JOB_S {
    BOOL bEnable;
    VGS_TASK_S tasks[VGS_TASK_MAX_NUM];
} VGS_JOB_S;

int TR_VGS_Module_Init();
int TR_VGS_Module_DeInit();

#ifdef __cplusplus
}
#endif

#endif